1. Field of the Invention
The invention relates to data processing systems; in particular data processing systems using object-oriented computer programs to access managed data.
2. Description of Related Art
Large, modem business organizations are in a constant state of flux. The makeup of the business organization changes with every merger, acquisition, and divestiture. Related data assets come and go accordingly. The rapid pace of change represents a difficulty in keeping enterprise computer applications in synchronization with the changing set of disparate data sources with which they may be forced to contend.
Modern business enterprises face another challenge in matching their computer applications to their data assets. The majority of data assets are maintained using traditional data management systems and techniques. Some reasons for this are the huge investment made in building and maintaining the existing assets, the proven reliability of the existing systems, and the cost of migrating to more modem systems. Object oriented databases are on the horizon, moving from the laboratory to the field, but have yet to make serious inroads to widespread commercial use. But while structured data management systems have lagged in adopting an object-oriented design paradigm, commercial application software designs have fully embraced it. Use of object-oriented programming languages, such as C++ and Java proliferates. Thus, modem business organizations face a schism between the design paradigm underlying their application software and the design paradigm managing the data on which the software is to operate.
Attempts have been made to bridge the gap between legacy data management systems and object oriented programs. U.S. Pat. No. 5,499,371 (Henninger), for instance, discloses method and apparatus for automatic generation of object-oriented source code for mapping relational data to objects. The invention of Henninger can greatly speed the work of a programmer by automatically generating source code that supports a fixed correspondence between object classes of the source code and the data fields managed by a traditional structured database system. The resultant source code is combined with other source code created by the programmer and compiled into an executable computer program. Changes at the structured database can, however, necessitate regeneration of the object class source code and recompilation of every program in which it is incorporated. This threatens a software maintenance burden to the dynamic business organization. Consequently, there is a need in the art to bridge the gap between the multiple, disparate, and ever-changing data sources of a business and its object-oriented application software, while minimizing the impact of, and maximizing the flexibility in responding to, changes in the data source makeup.
The present invention is directed to the movement of data between multiple, disparate data sources and the object-oriented computer programs that process the data. A data access server is interposed between the object-oriented programs and the data sources, and acts as an intermediary. The intermediary server receives requests for data access from object-oriented computer programs, correlates each request to one or more interactions with one or more data sources, performs each required interaction, consolidates the results of the interactions, and presents a singular response to the requesting computer program. The consolidated response from the intermediary server contains data items requested by the computer program, information regarding the hierarchical topology that relates the data items, and an indication of the possible object types that might embody the data items. The application program receives the consolidated response and builds an object hierarchy to embody the data items and to interface them to the rest of the application program.
The class of an object used to embody data items is selected at execution time from a list of possible candidates. The same data access request, made by the same program, on two different occasions could result in objects of different classes being used to embody accessed data items because of a change in the data available over time.
A configuration database stores information about the types of data access requests that application programs can make to the intermediary server, the data sources with which the intermediary server interacts, and the types of interactions that are possible. The user of a computer program with a graphical user interface maintains the contents of the configuration database. The configuration database may include procedural scripts that permit detailed and conditional control over the work performed by the intermediary server to satisfy a data access request.
Embodiments employing the present invention may permit an application program to progressively augment a programming object with data items retrieved over multiple data access requests to the intermediary server. Moreover, the process of augmentation may result in some embodiments in the mutation of the underlying object from one class to another. In this way, the set of behaviors for a programming object can adapt to match the set of data items the object contains.
These and other purposes and advantages of the present invention will become more apparent to those skilled in the art from the following detailed description in conjunction with the appended drawings.